1. Field
The described embodiments relate to computing devices. More specifically, the described embodiments relate to memory configuration operations for computing devices.
2. Related Art
Computing devices typically perform operations for establishing an operating state of the computing device upon being started up (e.g., plugged in, switched on, restored from a low-power state, etc.). For example, at start-up, a processor in many computing devices performs what is known as a power on self test (POST), during which the processor executes firmware known as basic input/output system (BIOS) to initialize and test hardware components (processor core(s), memory, mass-storage devices, peripherals, etc.) and establish a low-level operating state of the computing device. After performing the initialization and testing operations, the BIOS typically directs the processor to begin executing software such as an operating system or a boot loader, which establishes a high-level operating state to prepare the computing device for subsequent use. For example, an operating system may perform further initialization and tests, start services/routines, launch programs/applications, etc.
In many computing devices, during the POST, testing is performed on a main memory (or, more simply, “memory”) in the computing device to establish an operating state for the memory. Generally, the operating state for the memory includes various parameters for the memory such as memory operating speed, data and control signal timing, etc. During the testing, the processor interacts with the memory to determine a highest performance memory operating state that can be reliably supported by the memory (i.e., a memory operating state with the fastest speed, lowest access times, etc.). For example, in some of these computing devices, for a set of potential memory operating speeds, the processor sets the memory to each of the potential operating speeds (and may set other operating parameters) and performs various memory access operations (writes, reads, etc.) to determine whether the memory can be reliably operated at the corresponding potential operating speed. Upon determining a highest speed at which the memory can be reliably operated, and thus the highest performance operating state, the processor sets computer system state to indicate the highest performance memory operating state. The computing device can then use the system state when operating the memory. For example, the computing device can selectively set the memory to the highest performance memory state within power, bandwidth, etc. constraints.
Because the computing devices perform numerous other operations in addition to testing the memory during the POST, the POST in some computing devices takes a sufficiently long time to annoy a user waiting for the device to finish starting up so that the computing device can be used.
Throughout the figures and the description, like reference numerals refer to the same figure elements.